package beans;

// Generated 09/06/2011 23:19:23 by Hibernate Tools 3.4.0.CR1

import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

/**
 * TbProduto generated by hbm2java
 */
@Entity
@Table(name = "TB_PRODUTO")
public class TbProduto implements java.io.Serializable {

	private int produtoCod;
	private String produtoDescr;
	private String produtoGrupo;
	private long produtoPeso;
	private Set<TbMaquina> tbMaquinas = new HashSet<TbMaquina>(0);
	private Set<TbOp> tbOps = new HashSet<TbOp>(0);
	private Set<TbProdutorefugado> tbProdutorefugados = new HashSet<TbProdutorefugado>(
			0);

	public TbProduto() {
	}

	public TbProduto(int produtoCod, String produtoDescr, String produtoGrupo,
			long produtoPeso) {
		this.produtoCod = produtoCod;
		this.produtoDescr = produtoDescr;
		this.produtoGrupo = produtoGrupo;
		this.produtoPeso = produtoPeso;
	}

	public TbProduto(int produtoCod, String produtoDescr, String produtoGrupo,
			long produtoPeso, Set<TbMaquina> tbMaquinas, Set<TbOp> tbOps,
			Set<TbProdutorefugado> tbProdutorefugados) {
		this.produtoCod = produtoCod;
		this.produtoDescr = produtoDescr;
		this.produtoGrupo = produtoGrupo;
		this.produtoPeso = produtoPeso;
		this.tbMaquinas = tbMaquinas;
		this.tbOps = tbOps;
		this.tbProdutorefugados = tbProdutorefugados;
	}

	@Id
	@Column(name = "PRODUTO_COD", unique = true, nullable = false, precision = 8, scale = 0)
	public int getProdutoCod() {
		return this.produtoCod;
	}

	public void setProdutoCod(int produtoCod) {
		this.produtoCod = produtoCod;
	}

	@Column(name = "PRODUTO_DESCR", nullable = false, length = 30)
	public String getProdutoDescr() {
		return this.produtoDescr;
	}

	public void setProdutoDescr(String produtoDescr) {
		this.produtoDescr = produtoDescr;
	}

	@Column(name = "PRODUTO_GRUPO", nullable = false, length = 30)
	public String getProdutoGrupo() {
		return this.produtoGrupo;
	}

	public void setProdutoGrupo(String produtoGrupo) {
		this.produtoGrupo = produtoGrupo;
	}

	@Column(name = "PRODUTO_PESO", nullable = false, precision = 10, scale = 0)
	public long getProdutoPeso() {
		return this.produtoPeso;
	}

	public void setProdutoPeso(long produtoPeso) {
		this.produtoPeso = produtoPeso;
	}

	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(name = "TB_PRODMAQ", joinColumns = { @JoinColumn(name = "PRODMAQ_CODPROD", nullable = false, updatable = false) }, inverseJoinColumns = { @JoinColumn(name = "PRODMAQ_CODMAQUINA", nullable = false, updatable = false) })
 	public Set<TbMaquina> getTbMaquinas() {
		return this.tbMaquinas;
	}

	public void setTbMaquinas(Set<TbMaquina> tbMaquinas) {
		this.tbMaquinas = tbMaquinas;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "tbProduto")
	public Set<TbOp> getTbOps() {
		return this.tbOps;
	}

	public void setTbOps(Set<TbOp> tbOps) {
		this.tbOps = tbOps;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "tbProduto")
	public Set<TbProdutorefugado> getTbProdutorefugados() {
		return this.tbProdutorefugados;
	}

	public void setTbProdutorefugados(Set<TbProdutorefugado> tbProdutorefugados) {
		this.tbProdutorefugados = tbProdutorefugados;
	}

}
